package org.tedu.springdemo.day01pm;


import org.junit.jupiter.api.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * Testdemo类
 */
public class Testdemo {
    /**
     * 1.普通创建对象方式
     */
    @Test
    public void test01(){
      //创建【实例化】对象
        Person p=new Person();
        p.eat();
        p.say();
    }
    /**
     * 2.Spring创建对象方式：IOC控制反转--交给Spring容器--管理类
     */
    @Test
    public void test02(){
        //1.创建Spring容器---ApplicationContext（抽象类：无法实例化）
        //创建ApplicationContext对象：面向对象：多态--子类的对象指向父类的引用
        // 映射文件:配置类的信息----功能：找到对应的类
        ApplicationContext ac=new ClassPathXmlApplicationContext("bean.xml");
       //2. getBean()获取一个bean(bean==对象),返回值Object类
        Person p=(Person)ac.getBean("person");
        p.say();
        p.eat();
        //3.关闭容器
        ((ClassPathXmlApplicationContext)ac).close();
    }
}
